<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
  <script>

    //把数组中的内容排序
    //    var arr=[1,100,2,50,200,20];
    //    arr.sort(function (obj1,obj2) {
    //      if(obj1<obj2){
    //        return 1;
    //      }else if(obj1==obj2){
    //        return 0;
    //      }else{
    //        return -1;
    //      }
    //    });//官方说这么写不一定是稳定的,要想稳定
    //
    // console.log(arr);


    //    var arr=["abc","adef","adc","acc"];
    //    arr.sort(function (a,b) {//稳定
    //      if(a>b){
    //        return 1;
    //      }else if(a<b){
    //        return -1;
    //      }else{
    //        return 0;
    //      }
    //    });
    //    console.log(arr);
    //    arr.sort();//不稳定
    //    console.log(arr);


    //构造函数
    //创建三个对象,分别把三个对象加入到数组中,每个对象中有三个属性,把三个对象排序,但是是按照每个对象的属性进行排序---影片的信息

    function File(name, size, time) {
      this.name = name;//影片的名字
      this.size = size;//影片的大小
      this.time = time;//上映的时间
    }
    var f1 = new File("jack.avi", "400M", "1997-12-12");
    var f2 = new File("zhujiao.avi", "200M", "2017-12-12");
    var f3 = new File("tom.avi", "800M", "2010-12-12");
    var arr = [f1, f2, f3];
    function fn(attr) {
      //函数作为返回值使用
      return function (obj1, obj2) {
        //对象不能直接对比,但是对象中的属性的值是可以对比
        if (obj1[attr] > obj2[attr]) {
          return 1;
        } else if (obj1[attr] == obj2[attr]) {
          return 0;
        } else {
          return -1;
        }
      }
    }
    var str = "time";
    arr.sort(fn(str));//函数作为参数使用

    //输出排序后的结果
    for (var i = 0; i < arr.length; i++) {
      console.log(arr[i].name + "----" + arr[i].size + "----" + arr[i].time);
    }


  </script>
</head>
<body>


</body>
</html>